#include"processBar.h"

char arr[size];
const char *Rotate="-|/\\";//   \\两个是转义字符
/*
void process()
{
    int cnt=0;
    memset(arr,'\0',sizeof(char)*size);//全部初始化为\0
    while(cnt<=100)
    {
        printf("\033[34m%-100s]\033[0m%d%%][%c]\r",arr,cnt,Rotate[cnt%4]);//
        fflush(stdout);      //立即显示
        arr[cnt]='=';  //然后在当前位置下加#
        cnt++;
        usleep(50000);
        if(cnt<100)
            arr[cnt]='>';
    }
    printf("\n");
}
*/


//多任务下载进度条

//调用一次打印一次
void process(int rate)
{
    printf("\033[34m%-100s]\033[0m%d%%][%c]\r",arr,rate,Rotate[rate%4]);
    //%-100s 向左靠齐，预留100个空
    //%d%%  两个%是显示%
    
    fflush(stdout);      //立即显示
    arr[rate++]='=';  //然后在当前位置下加#
    if(rate<100)
        arr[rate]='>';
}

//进度条的不同场景下的展现
void process2(int memory)
{
    int cur=0;  //当前已下载
    int speed=5;
    memset(arr,'\0',sizeof(char)*size);//全部初始化为\0
    while(cur<=memory)      //说明全部下载完
    {
        int rate =cur*100/memory;
        process(rate);  //执行一次
        usleep(50000);
        cur+=speed;
    }
    printf("\n");
}

